package com.magic.gre.mvp.contract;

import com.magic.gre.entity.WordsDetailsBean;
import com.noname.lib_base_java.mvp.BaseContract;

import java.util.List;

import io.reactivex.Observer;
import okhttp3.ResponseBody;

/**
 * Author: Lmoumou
 * Date: 2019-01-08 11:52
 * 文件名: WordsDetailsContract
 * 描述:
 */
public interface WordsDetailsContract {
    interface Model extends BaseContract.BaseModel {
        void mUnitDetails(Observer<ResponseBody> observer, String unitId);

        void mNewWordsSave(Observer<ResponseBody> observer, String vocabularyId);

        void mRipeWordsSave(Observer<ResponseBody> observer, String vocabularyId);

        void mRecordSave(Observer<ResponseBody> observer, String id,String unitId);

        void mCountToDay(Observer<ResponseBody> observer);

        void mLearnRecordUpdate(Observer<ResponseBody> observer, String id);

        void mCreat(Observer<ResponseBody> observer);

        void mLastUnit(Observer<ResponseBody> observer, String unitId);
    }

    interface Presenter extends BaseContract.BasePresenter {
        void pUnitDetails(String unitId);

        void pNewWordsSave(String vocabularyId, int position);

        void pRipeWordsSave(String vocabularyId, int position);

        void pRecordSave(String id,String unitId);

        void pCountToDay();

        void pLearnRecordUpdate(String id);

        void pCreat();

        void pLastUnit(String unitId);
    }

    interface View extends BaseContract.BaseView {
        void vUnitDatails(List<WordsDetailsBean> wordsBeanList);

        void vNewWordsSave(int position);

        void vRipeWordsSave(int position);

        void vRecordSave();

        void vCountToDay(String count);

        void vCreat(String id);

        void vLastUnit(String lastId);
    }
}
